深度学习中的注意力机制 原理 及 代码

seq2seq缺陷:无论之前的context有多长,包含多少信息量,最终都要被压缩成一个几百维的vector。这意味着context越大,最终的state vector会丢失越多的信息。

Attention based model的核心思想: 一个模型完全可以在decode的过程中利用context的全部信息,而不仅仅是最后一个state。

  1. ss
    • global attention
    • local attention
  2. ewrw
    • soft
    • hard

各种各样的attention

  • 2014年google mind团队的这篇论文《Recurrent Models of Visual Attention》,他们在RNN模型上使用了attention机制来进行图像分类。
  • Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,他们的工作算是第一个将attention机制应用到NLP领域中。
  • 接着attention机制被广泛应用在基于RNN/CNN等神经网络模型的各种NLP任务中。
  • 2017年,google机器翻译团队发表的《Attention is all you need》中大量使用了自注意力(self-attention)机制来学习文本表示。

什么是attention,attention的起源

广义的attention

见google得transformer。

Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射,

self attention

什么是self-attention,下面这个图就是self-attention。

可以理解为没有target的attention,也可以理解为自己把自己当做target进行attention。

Multi-Head Attention

Structured Self-attention

参考 A Structured Self-attentive Sentence Embedding

Self-Attention with Relative Position Representations - google brain 2018

Self-Attention with Relative Position Representations(基于相对位置表示的子注意力模型)

Reinforced Self-Attention

Reinforced Self-Attention Network: a Hybrid of Hard and Soft Attention for Sequence Modeling(增强的自注意力网络:一种对序列建模的硬和软注意力的混合)

Distance-based Self-Attention Network

Distance-based Self-Attention Network for Natural Language Inference(基于距离的自注意力网络的自然语言推理)

sparse attention

hierarchical attentioin

Hierarchical Attention Networks for Document Classification

Hierarchical Attention Network

采用了word-level和sentent-level的attention。

  1. a word sequence encoder
  2. a word-level attention layer
  3. a sentence encoder
  4. a sentence-level attention layer

可视化分析

Hierarchical Attention Network

##

##

参考